package com.itlong.cloud.commons.dao;

import com.itlong.cloud.POJO.PO.DeviceEntranceInfoPO;
import com.itlong.cloud.POJO.PO.ProductTypePO;
import com.itlong.cloud.POJO.PO.PushCloudEntranceChangeLogPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      云门禁推送信息业务指令持久层访问接口
 * </desc>
 *
 * @createDate 2019/02/26
 */
@Mapper
@Repository
public interface IPushCloudEntranceChangeLogDao {

    /**
     * <desc>
     *      批量保存云门禁推送信息业务指令
     * </desc>
     *
     * @author wangzhi
     * @createDate 2019/02/27
     */
    Integer batchSave(List<PushCloudEntranceChangeLogPO> list);


    /**
     * <desc>
     *      批量保存带更新时间
     * </desc>
     *
     * @param list
     * @return
     * @author Qiang.S
     * @createDate 2019/03/05
     */
    Integer batchSaveAndUpgradeTime(@Param("list") List<PushCloudEntranceChangeLogPO> list);

    /**
     * <desc>
     *      根据设备编号查询云门禁版本号和iotkey
     * </desc>
     *
     * @param deviceUnique 设备编号
     * @return
     * @author Qiang.S
     * @createDate 2019/04/28
     */
    ProductTypePO getEntranceVersonIotkey(@Param("deviceUnique") String deviceUnique);

    /**
     * <desc>
     *      根据设备编号查询门禁设备主门禁设备编号
     * </desc>
     *
     * @param list 设备编号
     * @return
     * @author Qiang.S
     * @createDate 2019/04/28
     */
    List<DeviceEntranceInfoPO> getMainDeviceUnique(@Param("list") List<PushCloudEntranceChangeLogPO> list);

    /**
     * <desc>
     *      获取一体式人脸识别门禁设备对应类型的多媒体信息
     * </desc>
     *
     * @param deviceUnique 设备唯一码
     * @param type 类型 1文字 2图片 3视频
     * @return
     * @author Jiaqi.X
     * @createDate 2017/12/07
     */
    List<Map<String,Object>> getMediasEntrance(@Param("deviceUnique") String deviceUnique, @Param("type") String type);
}
